if (typeof test === 'undefined') require('../test');

test('toFixed', function () {
  var u;

  function t(expected, value, decimalPlaces){
    test.areEqual(String(expected), new Big(value).toFixed(decimalPlaces));
  }

  Big.DP = 20;
  Big.RM = 1;

  t('0.0', 0, 1);
  t('0.0', 0, 1);
  t('0.0', -0, 1);
  t('0.00', -0, 2);

  t('100.0', 99.9512986, 1);
  t('10.0',  9.95036, 1);
  t('1.0', 0.99, 1);
  t('0.10', 0.09906, 2);
  t('0.010', 0.0098034, 3);

  t('1111111111111111111111.00000000', '1111111111111111111111', 8);
  t('0.1', 0.1, 1);
  t('0.10', 0.1, 2);
  t('0.100', 0.1, 3);
  t('0.01', 0.01, 2);
  t('0.010', 0.01, 3);
  t('0.0100', 0.01, 4);
  t('0.00', 0.001, 2);
  t('0.001', 0.001, 3);
  t('0.0010', 0.001, 4);
  t('1.0000', 1, 4);
  t('1.0', 1, 1);
  t('1', 1, 0);
  t('12', 12, 0);
  t('1', 1.1, 0);
  t('12', 12.1, 0);
  t('1', 1.12, 0);
  t('12', 12.12, 0);
  t('0.0000006', 0.0000006, 7);
  t('0.00000006', 0.00000006, 8);
  t('0.000000060', 0.00000006, 9);
  t('0.0000000600', 0.00000006, 10);
  t('0', 0, 0);
  t('0.0', 0, 1);
  t('0.00', 0, 2);

  t('-1111111111111111111111.00000000', '-1111111111111111111111', 8);
  t('-0.1', -0.1, 1);
  t('-0.10', -0.1, 2);
  t('-0.100', -0.1, 3);
  t('-0.01', -0.01, 2);
  t('-0.010', -0.01, 3);
  t('-0.0100', -0.01, 4);
  t('-0.00', -0.001, 2);
  t('-0.001', -0.001, 3);
  t('-0.0010', -0.001, 4);
  t('-1.0000', -1, 4);
  t('-1.0', -1, 1);
  t('-1', -1, 0);
  t('-1', -1.1, 0);
  t('-12', -12.1, 0);
  t('-1', -1.12, 0);
  t('-12', -12.12, 0);
  t('-0.00000', -0.0000006, 5);
  t('-0.0000006', -0.0000006, 7);
  t('-0.00000006', -0.00000006, 8);
  t('-0.000000060', -0.00000006, 9);
  t('-0.0000000600', -0.00000006, 10);
  t('0', 0, 0);
  t('0', -0, 0);
  t('0.0', -0, 1);
  t('0.00', -0, 2);
  t('0.00', '-0.0', 2);
  t('0.00', '-0.0000', 2);
  t('0.0000', -0, 4);

  t('1000', 1000);
  t('0.00001', 0.00001);
  t('0.00001', 0.00001, 5);
  t('0.00000000000000000010', '0.0000000000000000001', 20);
  t('0.00001000000000000', 0.00001, 17);
  t('1.00000000000000000', 1, 17);
  t('1000000000000000128', '1000000000000000128');
  t('100000000000000128.0', '100000000000000128', 1);
  t('10000000000000128.00', '10000000000000128', 2);
  t('10000000000000128.00000000000000000000', '10000000000000128', 20);
  t('0', 0);
  t('-42.000', -42, 3);
  t('-1000000000000000128', '-1000000000000000128');
  t('-0.00000000000000000010', '-0.0000000000000000001', 20);
  t('0.12312312312312300000', '0.123123123123123', 20);

  t('1', 0.5, 0);
  t('-1', -0.5, 0);
  t('1.3', 1.25, 1);
  t('234.2041', 234.20405, 4);
  t('234.2041', '234.204050000000000000000000000000006', 4);

  Big.RM = 0;

  t('0.3', '0.3', 1);
  t('-200258348374.3', '-200258348374.3595802551014614089785610548492885372322083789', 1);
  t('-8996550690041157178188143247448286757711.5580857413', '-8996550690041157178188143247448286757711.55808574133329', 10);
  t('-3172413669280032477.00', '-3172413669280032477', 2);
  t('6547946357820.750067107731812021675', '6547946357820.750067107731812021675351468709784004', 21);
  t('24188393190716631282750407915133817062572333100239.0000000000000000000', '24188393190716631282750407915133817062572333100239', 19);
  t('539982361589798324286450574560330534901309503.82000000', '539982361589798324286450574560330534901309503.82', 8);
  t('829898800701640360552652.0000', '829898800701640360552652', 4);
  t('-1585782773394.4', '-1585782773394.44501382110847', 1);
  t('-7604844176594943774211951887242195107.399', '-7604844176594943774211951887242195107.399576743428669618164', 3);
  t('-0.00', '-0.0000000000000005153003506839', 2);
  t('0.000', '0.00003', 3);
  t('-5454249481540317712.560293859013731302', '-5454249481540317712.56029385901373130215526009738012974642338', 18);
  t('15352607654972198961429295651185206861818141054385638.00000000000000000', '15352607654972198961429295651185206861818141054385638', 17);
  t('91494535411039025233040.292', '91494535411039025233040.29224903220309368507011', 3);
  t('2043369316.0', '2043369316', 1);
  t('-0.0000000782350618457', '-0.0000000782350618457630647420312027682238301541350414', 19);
  t('2122652.0', '2122652', 1);
  t('-0.00841365', '-0.00841365099301981489219310202029642', 8);
  t('0.0', '0.0007035', 1);
  t('-0.00000000000000374916', '-0.0000000000000037491685778894015479084539735777088', 20);
  t('534883638.00', '534883638', 2);
  t('-2.0', '-2', 1);
  t('-5634442247266825358399629799939027370665.0000000000000000000', '-5634442247266825358399629799939027370665', 19);
  t('3331187169219186569122.000000000', '3331187169219186569122', 9);
  t('0.0000000000', '0.0000000000006604395609805032330367635527', 10);
  t('-0.0000000000000576901', '-0.00000000000005769013292086168690493327', 19);
  t('-661.8', '-661.828596629053201916486', 1);
  t('-6073555395665254434249128854999349235744174928042756.1153000000000', '-6073555395665254434249128854999349235744174928042756.1153', 13);
  t('-5013086846966.000', '-5013086846966', 3);
  t('0.004015', '0.00401523226833', 6);
  t('3140295374107374579919222510.1462722', '3140295374107374579919222510.1462722819395532', 7);
  t('-0.000000', '-0.00000000000000799876460379334679831886', 6);
  t('-0.00', '-0.0003', 2);
  t('-0.026760766726884267', '-0.026760766726884267750393307117624838556001925491', 18);
  t('-20821740502968847857923433558797.0899', '-20821740502968847857923433558797.08997487843745', 4);
  t('0.00000000002', '0.000000000020346524414696573703092255317751132892', 11);
  t('45492073832204366341299301624.000000000', '45492073832204366341299301624', 9);
  t('-22166905155222048275755520049666636.000000000000000', '-22166905155222048275755520049666636', 15);
  t('-0.0047749609085292677147', '-0.00477496090852926771478756451899887586311084', 22);
  t('0.0000000000066505751320542', '0.000000000006650575132054209449586010993453988006221893652', 25);
  t('-5987959.1630276586738', '-5987959.163027658673856586', 13);
  t('-1666.00', '-1666', 2);
  t('634686619827216246836355610829.00000', '634686619827216246836355610829', 5);
  t('-4775591515709.469953191321103401', '-4775591515709.4699531913211034017874029213583522324151968262', 18);
  t('-0.00209248872211', '-0.002092488722118037239933953031151990638700454763', 14);
  t('4592542353054190400811174084.8269203906', '4592542353054190400811174084.826920390637', 10);
  t('-2719622410429690231797721788738949434271171.000000000', '-2719622410429690231797721788738949434271171', 9);
  t('7481081126833353571249877375770446139269602514514.000000000000000', '7481081126833353571249877375770446139269602514514', 15);
  t('-717308374940.1455264110', '-717308374940.145526411005821148802846366045624291352081913', 10);
  t('-0.000000007', '-0.000000007385554720977', 9);
  t('-0.000861389378754506340', '-0.000861389378754506340296565696012302905659179798', 21);
  t('-5053251493102402525630380749.678', '-5053251493102402525630380749.6785380807585', 3);
  t('-4.0', '-4', 1);
  t('-91608.490784509096643367058', '-91608.49078450909664336705884736640894006', 21);
  t('0.000', '0.000000008', 3);
  t('-60759551763816025544062865222.0000000000', '-60759551763816025544062865222', 10);
  t('1052.9354577213309', '1052.93545772133093448862729794627180236152', 13);
  t('45267509474.0', '45267509474', 1);
  t('3157315152.00', '3157315152', 2);
  t('-0.5', '-0.5', 1);
  t('0.0057546', '0.005754639024965241832260499185230186', 7);
  t('-0.000', '-0.0006', 3);
  t('3230791870040253164174259086.74466486260', '3230791870040253164174259086.7446648626', 11);
  t('-4344423254203589122222715762047.000000', '-4344423254203589122222715762047', 6);
  t('0.000000', '0.00000000000000000005', 6);
  t('-0.00000000', '-0.0000000000000032995964759', 8);
  t('29342667392627.13800502090', '29342667392627.1380050209', 11);
  t('3553322646.0000', '3553322646', 4);
  t('0.0000000', '0.000000000000711595888783922', 7);
  t('128714169681975260747586179339689165715468750318817.0', '128714169681975260747586179339689165715468750318817', 1);
  t('-203846045708188631.7', '-203846045708188631.714385911896349', 1);
  t('6732937084326281547153681265380857817.680', '6732937084326281547153681265380857817.68', 3);
  t('-80645.000', '-80645', 3);
  t('0.0091340467346905226', '0.0091340467346905226577831006050168789952519932147436292', 19);
  t('765350910755641789513513452874635492095713.000000000000000000', '765350910755641789513513452874635492095713', 18);
  t('7619917853284.00', '7619917853284', 2);
  t('-7584198211496430223.4315410358218089229', '-7584198211496430223.43154103582180892294235232', 19);
  t('-2946097370887492968389.2786430820000', '-2946097370887492968389.278643082', 13);
  t('-400129748.000', '-400129748', 3);
  t('-76362970460470638842230785495147305876.114384970200', '-76362970460470638842230785495147305876.1143849702', 12);
  t('334029398796150851211670406157956664329.0000000000000', '334029398796150851211670406157956664329', 13);
  t('-0.000000000000', '-0.000000000000000000881892851839338487244179354', 12);
  t('-70475264003.0000', '-70475264003', 4);
  t('0.080', '0.0809', 3);
  t('16917787280140934145228.000', '16917787280140934145228', 3);
  t('25909519297999779346.000000000', '25909519297999779346', 9);
  t('-355224.19720319810644', '-355224.19720319810644496969482', 14);
  t('8482635122899359930368306655493255835883236244.0000000000000', '8482635122899359930368306655493255835883236244', 13);
  t('41268046802033799763539654473098094614587.00000000000000000', '41268046802033799763539654473098094614587', 17);
  t('8564065673925609331469179144.0', '8564065673925609331469179144', 1);
  t('-231732424.30838', '-231732424.3083887160672296965273691583237367', 5);
  t('-597740668669015342275289261436747905744110289638.43026849', '-597740668669015342275289261436747905744110289638.430268497449', 8);
  t('8297509140414599.000000', '8297509140414599', 6);
  t('-17320207086212822899.00', '-17320207086212822899', 2);
  t('0.00', '0.000000000002', 2);
  t('4972.517305', '4972.51730546661166855901714', 6);
  t('0.000000', '0.0000000162819653537555368724511902456803362906', 6);
  t('29485932208290816133111088923502731.000000', '29485932208290816133111088923502731', 6);
  t('0.0000', '0.000000000006', 4);

  Big.RM = 1;

  t('733744593401073823825766410831877679446.0000000000000000000', '733744593401073823825766410831877679446', 19);
  t('-64.6849459', '-64.6849458687691227978', 7);
  t('-0.000000', '-0.00000000009', 6);
  t('-62537287527837589298857228059657673223234916.95923265430000000', '-62537287527837589298857228059657673223234916.9592326543', 17);
  t('3393668096256773847245721315080265089731.000000', '3393668096256773847245721315080265089731', 6);
  t('0.0', '0.0000000000000056674956638008432348702401392', 1);
  t('72516372734.6', '72516372734.6447', 1);
  t('-418.28', '-418.2800731793741351', 2);
  t('0.00', '0.001', 2);
  t('8366217346845756726.00000000', '8366217346845756726', 8);
  t('-0.000000', '-0.0000000000000092034548636370987112234384736726', 6);
  t('0.35', '0.35474830751442135112334772517193392', 2);
  t('64703289793894.5830', '64703289793894.58296866', 4);
  t('-0.000000000000000036', '-0.000000000000000036461242408590182363418943891', 18);
  t('5494508405056449117588.631948', '5494508405056449117588.631948458033233759999', 6);
  t('-0.0', '-0.00393971618499838726739122333520030506235698', 1);
  t('375581290738585826632.00000000', '375581290738585826632', 8);
  t('254.96635275802300887', '254.96635275802300886544776010389418575738792480979736', 17);
  t('21492347.69467571391498624445', '21492347.6946757139149862444482880595559468', 20);
  t('313576441324233.0000000', '313576441324233', 7);
  t('-8617.57089319166', '-8617.57089319166205141433276411273552139017', 11);
  t('0.00000000014928376395', '0.00000000014928376394768755724252424022348932365406839448223', 20);
  t('2.497624215622999568569', '2.49762421562299956856937732557160934323114203547832675', 21);
  t('-288056106511636272271570523193926801058294502.000', '-288056106511636272271570523193926801058294502', 3);
  t('-4798171567575228724.140', '-4798171567575228724.1400144613946894', 3);
  t('8.49008', '8.49007655210654', 5);
  t('-56633605.000', '-56633605', 3);
  t('-4147381274685866.81753', '-4147381274685866.8175313', 5);
  t('-534460490015293367127173277346694900936058.0000', '-534460490015293367127173277346694900936058', 4);
  t('182707431911537249021116759327712693311898345504618668.43327000000000000000000', '182707431911537249021116759327712693311898345504618668.43327', 23);
  t('210005324615278.4586839690045963321032', '210005324615278.458683969004596332103244549279', 22);
  t('779837001772884165637922377221951347134695.644834', '779837001772884165637922377221951347134695.6448338', 6);
  t('-0.000001', '-0.00000064188301390033596845335767993853284632527964514979079', 6);
  t('13.0', '13', 1);
  t('0.0000001269', '0.0000001269060795648365813491128357427111184222', 10);
  t('18446632248354.00', '18446632248354', 2);
  t('-1229249.79', '-1229249.7897249259', 2);
  t('49082.0', '49082', 1);
  t('-61.0', '-61', 1);
  t('-893.0', '-893', 1);
  t('5002282278.56974877690066484', '5002282278.569748776900664839184116538222902', 17);
  t('41372.00', '41372', 2);
  t('-4732022445962399687294885123498809.7625585825095', '-4732022445962399687294885123498809.7625585825095', 13);
  t('-55484242.036895641', '-55484242.036895641', 9);
  t('-41427133134.52583323427907663268339', '-41427133134.525833234279076632683393992706825', 23);
  t('0.0', '0.00004300614085218825243480119971669264977421', 1);
  t('-472025754597316278339412186866.7010659789', '-472025754597316278339412186866.701065978877597089729906019843', 10);
  t('2.50869', '2.50869082352024406', 5);
  t('-87154.000', '-87154', 3);
  t('-0.0000000000071859183950976', '-0.0000000000071859183950975905578927950225183102336392', 25);
  t('-10827138340266.44', '-10827138340266.44057558913', 2);
  t('0.0000702', '0.0000701871613973530533582225769977', 7);
  t('-4878237667448133503521416059497.376626000000', '-4878237667448133503521416059497.376626', 12);
  t('8984687671347686046766702.01181862480', '8984687671347686046766702.0118186248', 11);
  t('0.00000', '0.00000000076447711430809658905538', 5);
  t('-184825.87743766370213607', '-184825.87743766370213606656669525883145102', 17);
  t('-147007021210433212254058959161555.747000000000', '-147007021210433212254058959161555.747', 12);
  t('641778680063060681850989295.4', '641778680063060681850989295.44394602812788754296411563', 1);
  t('0.00', '0.000000000000000261099857', 2);
  t('-69168585539.981086198312', '-69168585539.9810861983124008597329', 12);
  t('-2441638.37765', '-2441638.37765405543', 5);
  t('0.00', '0.00000005', 2);
  t('-17865480328519059654833853633.668588983', '-17865480328519059654833853633.6685889825124607147114', 9);
  t('5552449880075592383242782.42', '5552449880075592383242782.42273775283', 2);
  t('-3.47445833771303714', '-3.4744583377130371421642122331960174443', 17);
  t('-5543608156416096833838191852961329666675.00000000000000', '-5543608156416096833838191852961329666675', 14);
  t('-6836042.000', '-6836042', 3);
  t('0.00000912', '0.0000091177854552839774258855562071866', 8);
  t('55986.00', '55986', 2);
  t('0.0', '0.02', 1);
  t('-0.0000', '-0.00000001', 4);
  t('889659799897707059043156.0', '889659799897707059043156', 1);
  t('0.000000', '0.00000000000000003', 6);
  t('0.00000000000008179581450', '0.00000000000008179581449515246320423213581212698189913041', 23);
  t('-981.4210', '-981.421', 4);
  t('-3455913777070673553360330519337.00000000000000', '-3455913777070673553360330519337', 14);
  t('0.00000000081700', '0.00000000081700228716634187537384600725', 14);
  t('4822037.000', '4822037', 3);
  t('-0.0000000064360437778', '-0.0000000064360437777672775206464043731', 19);
  t('5290480.66496927901282867', '5290480.66496927901282867027658062129', 17);
  t('-408612952552043095.000', '-408612952552043095', 3);
  t('-513.0', '-513', 1);
  t('-14964.000', '-14964', 3);
  t('-19903753117563849440806175537514112075543387952.00000', '-19903753117563849440806175537514112075543387952', 5);
  t('249443.0175143', '249443.0175142727704683419749', 7);
  t('-74343756463586673907431837633.24', '-74343756463586673907431837633.23687651', 2);
  t('-27.679', '-27.6785', 3);
  t('-64259172643579684888737979.618833554815821332098', '-64259172643579684888737979.618833554815821332097716331', 21);
  t('17230955766539391.00000000', '17230955766539391', 8);
  t('582751886981240.177', '582751886981240.177383845390864465', 3);
  t('191002031658424.51', '191002031658424.51247456500221220552332700327795408', 2);
  t('-479015175846069070145.000000000', '-479015175846069070145', 9);
  t('135507.00', '135507', 2);
  t('-1819380757840.7931545894175', '-1819380757840.79315458941752033110677996441946221', 13);
  t('56729395152942371.34113220', '56729395152942371.3411322', 8);
  t('0.00000', '0.000000009', 5);
  t('231631.31091406798', '231631.310914067979514934639396351953448', 11);
  t('0.00', '0.00044659', 2);
  t('-637697600918508531049573689760309.5119477000000000', '-637697600918508531049573689760309.5119477', 16);
  t('-6.19247283', '-6.19247282501186063445037314', 8);

  Big.RM = 2;

  t('-6614662975368684488885953285955838893900074215956.00', '-6614662975368684488885953285955838893900074215956', 2);
  t('8642393776898.000', '8642393776898', 3);
  t('3612207878528.1106344698085142865', '3612207878528.1106344698085142865438924419', 19);
  t('977910386.93', '977910386.9343537', 2);
  t('-8937937492688941768401276851642629965923372.0', '-8937937492688941768401276851642629965923372', 1);
  t('-8327876772303865517454752161.4376112752921904774', '-8327876772303865517454752161.43761127529219047742910886', 19);
  t('-27707.00', '-27707', 2);
  t('-7287595765894242586375.92700435484', '-7287595765894242586375.927004354837723619581861634319', 11);
  t('-0.00000', '-0.000000000000023670858459165486137218740358207859', 5);
  t('574676836802209077.64156', '574676836802209077.641563875647945277493356873895', 5);
  t('-3041038455237222898218053653661.87952947815', '-3041038455237222898218053653661.87952947815', 11);
  t('-628244132307.000', '-628244132307', 3);
  t('316566935167341670725238.000', '316566935167341670725238', 3);
  t('-77953301569468294124105528.0', '-77953301569468294124105528', 1);
  t('0.0046', '0.00460227833968584', 4);
  t('4323265763616518980379929221104.0', '4323265763616518980379929221104', 1);
  t('1674500565014237781637959673471730398.1120033', '1674500565014237781637959673471730398.1120032995511774', 7);
  t('872559441430499650732600166.00000', '872559441430499650732600166', 5);
  t('-87858304.0000', '-87858304', 4);
  t('-4158788.000', '-4158788', 3);
  t('3983930437416823631395.9093', '3983930437416823631395.90934402583657', 4);
  t('-14.5531937', '-14.5531936852106573016020290135814233645752955297443336', 7);
  t('0.00000000002201', '0.00000000002200503795474854372849141363413146996972', 14);
  t('0.0000000000000', '0.00000000000000000894955653982033503846831364474746320232', 13);
  t('61564779.00', '61564779', 2);
  t('-7.0', '-7', 1);
  t('-0.000000000000028455976228', '-0.00000000000002845597622815028653703372125435938812845106', 24);
  t('728982423193598397582409707715766595902844.0000000', '728982423193598397582409707715766595902844', 7);
  t('14538075860529.2697937480', '14538075860529.269793748', 10);
  t('0.000', '0.00000000000000000007021566096', 3);
  t('-5136066535080.86830591678842264063462546263', '-5136066535080.86830591678842264063462546262988980471309228558', 29);
  t('-3026751112367460839746524832112404665.000000000000000', '-3026751112367460839746524832112404665', 15);
  t('-6694275398250090562.00', '-6694275398250090562', 2);
  t('-50643997750937725516578696636829589244661366402743.000000000', '-50643997750937725516578696636829589244661366402743', 9);
  t('2197374413.79714', '2197374413.7971355344377249354470626290268959873', 5);
  t('0.0', '0.005020192658713355', 1);
  t('-254956356194995318790657817617390203938.180000000', '-254956356194995318790657817617390203938.18', 9);
  t('0.000', '0.000000000090726', 3);
  t('-644164371869124953225087.14694842524000', '-644164371869124953225087.14694842524', 14);
  t('-0.00000157175189018', '-0.0000015717518901763532026126676445445', 17);
  t('883545726717772254369.08868386', '883545726717772254369.0886838593581297250598', 8);
  t('-8890332541208932844712909996569216422867971798.000000000000000', '-8890332541208932844712909996569216422867971798', 15);
  t('-0.000000000000', '-0.000000000000000019481454049470983547912235', 12);
  t('740944636504591431790473918513.0000', '740944636504591431790473918513', 4);
  t('-5679793084762496855854965276883350654245022549131067599715.800000', '-5679793084762496855854965276883350654245022549131067599715.8', 6);
  t('51991398836962962151.4032644162159', '51991398836962962151.4032644162159099221', 13);
  t('66958838053011544557752193.00000', '66958838053011544557752193', 5);
  t('-670579843.2118208913941229137016', '-670579843.21182089139412291370155773837719883548843299002', 22);
  t('-153613650899356538114572207.94248678450152160836', '-153613650899356538114572207.9424867845015216083607156497', 20);
  t('-737846251706379871052.2861168', '-737846251706379871052.2861168267591416289887782899835', 7);
  t('-65908055.0', '-65908055', 1);
  t('3237039120306392313.80906374769', '3237039120306392313.80906374769434099092272015749692609', 11);
  t('83640693821.00', '83640693821', 2);
  t('-921776606869800052510163986912.6037663480501', '-921776606869800052510163986912.603766348050146856757561176111', 13);
  t('6303883932563373.0', '6303883932563373', 1);
  t('6373283811.5454531478622699', '6373283811.5454531478622698611321575271', 16);
  t('6097017834070937658.000000000', '6097017834070937658', 9);
  t('24524.17471335606758880', '24524.1747133560675887965670636565353165', 17);
  t('82671976754257522256837287487178420454352.00000', '82671976754257522256837287487178420454352', 5);
  t('-4134121508878287.32516638661', '-4134121508878287.32516638661094488', 11);
  t('706494960751225536339363333.135485602348', '706494960751225536339363333.13548560234793', 12);
  t('0.0000000', '0.00000000000000000005260494554647051', 7);
  t('-2172823046.605754378126140867773679', '-2172823046.60575437812614086777367899344184998336', 24);
  t('7182216670065915047.3', '7182216670065915047.265', 1);
  t('-0.0001', '-0.00011347856', 4);
  t('-1620.4750509689199484099', '-1620.475050968919948409915128915793493745056891952647', 19);
  t('-2107001274569567393.00000000', '-2107001274569567393', 8);
  t('0.00', '0.0000000004', 2);
  t('-0.000', '-0.00000000000000000009622600511499459674774308', 3);
  t('-1749656594942211427.14080828808148814976439530', '-1749656594942211427.1408082880814881497643953004161', 26);
  t('-2483383057229762.00000000', '-2483383057229762', 8);
  t('0.000000', '0.0000005', 6);
  t('-0', '-0.5', 0);

  t('0.5', '0.5', u);
  t('10.5', '10.5', u);
  t('0.05', '0.05', u);
  t('0.4', '0.4', u);
  t('0.6', '0.6', u);
  t('1.5', '1.5', u);
  t('-1.5', '-1.5', u);

  Big.RM = 1;

  t('-535564000.00', '-535564000', 2);
  t('-80000000.000', '-80000000', 3);
  t('-240.0', '-240', 1);
  t('-7520000000.0', '-7520000000', 1);
  t('306550.000', '306550', 3);
  t('800000000.0', '800000000', 1);
  t('-454000000.00000', '-454000000', 5);
  t('60.0', '60', 1);
  t('-4700000.000', '-4700000', 3);
  t('25000.00', '25000', 2);
  t('6847.0', '6847', 1);
  t('780.0', '780', 1);
  t('-50.0', '-50', 1);
  t('700.0', '700', 1);
  t('412598000.0000', '412598000', 4);
  t('-84581600.0', '-84581600', 1);
  t('5590000.00', '5590000', 2);
  t('-66000.0', '-66000', 1);
  t('600.0', '600', 1);
  t('-513335000.000', '-513335000', 3);
  t('-40.0', '-40', 1);
  t('3401.00', '3401', 2);
  t('8600.00', '8600', 2);
  t('-5410000.0', '-5410000', 1);
  t('5527170.0', '5527170', 1);
  t('-3710700.0', '-3710700', 1);
  t('-13230000.0', '-13230000', 1);

  t('-52536202527.13891931933498708496518913773517016037224', '-5.253620252713891931933498708496518913773517016037224E10', u);
  t('0.0000000000000008761383898703999300297605784533730922', '8.761383898703999300297605784533730922E-16', u);
  t('-0.0000000000000000000000000000000000004', '-4E-37', u);
  t('2832044194940.47654015529986948208', '2.83204419494047654015529986948208E12', u);
  t('0.00000000000000000000000064668155275864837', '6.4668155275864837E-25', u);
  t('4.34128088694', '4.34128088694E0', u);
  t('-851957.6572615611436542', '-8.519576572615611436542E5', u);
  t('-89097468286.2561077879598798580253771544265682053', '-8.90974682862561077879598798580253771544265682053E10', u);
  t('-0.000000000000000000000000000000000000000000000030409767', '-3.0409767E-47', u);
  t('0.000000000000000000004295112484112357722747956581254', '4.295112484112357722747956581254E-21', u);
  t('-839203207475651.6542808578', '-8.392032074756516542808578E14', u);
  t('-0.00000000000000000078216', '-7.8216E-19', u);
  t('-1782290274935701247734.21262413032385', '-1.78229027493570124773421262413032385E21', u);
  t('31669451104144801337076433457.18511076', '3.166945110414480133707643345718511076E28', u);
  t('0.000000000000000000000000000000000000472351852761', '4.72351852761E-37', u);
  t('-50155220217523568901083623.78842580174913602672593731', '-5.015522021752356890108362378842580174913602672593731E25', u);
  t('-291.37', '-2.9137E2', u);
  t('-52474611936456205886027195352961212383.2279441143', '-5.24746119364562058860271953529612123832279441143E37', u);
  t('-326.9376463292543', '-3.269376463292543E2', u);
  t('0.00000000000044', '4.4E-13', u);
  t('0.000000087792449', '8.7792449E-8', u);
  t('497835793870987132484033.938845920610565887398960253648', '4.97835793870987132484033938845920610565887398960253648E23', u);
  t('-33960439442302770058.74863962', '-3.396043944230277005874863962E19', u);
  t('0.00000000000000000000000000000000000000020694696587293782', '2.0694696587293782E-40', u);
  t('-0.8904319539', '-8.904319539E-1', u);
  t('-86429552798.4', '-8.64295527984E10', u);
  t('0.000000000000000000000000000003', '3E-30', u);
  t('108595082003321932.8178949736608320767', '1.085950820033219328178949736608320767E17', u);
  t('611126.73674534242367484008848341500334', '6.1112673674534242367484008848341500334E5', u);
  t('4311.0597590893026685282662406924', '4.3110597590893026685282662406924E3', u);
  t('0.000000000000000000000000000000000000000073309221', '7.3309221E-41', u);
  t('-6864844854510.144926572184', '-6.864844854510144926572184E12', u);
  t('-0.038', '-3.8E-2', u);
  t('0.00000000000000794946369399591', '7.94946369399591E-15', u);
  t('56020.6861005', '5.60206861005E4', u);
  t('-0.00000000000896738912765063552834206018847', '-8.96738912765063552834206018847E-12', u);
  t('0.00000000006755925523685348357189087468', '6.755925523685348357189087468E-11', u);
  t('0.000000000000000000000000000000000072', '7.2E-35', u);
  t('0.00000000000000000000000000000000000000000000000000006128', '6.128E-53', u);
  t('-27010668344373144545282.061712584328482438690936897', '-2.7010668344373144545282061712584328482438690936897E22', u);
  t('-0.000066720042169954586184178645', '-6.6720042169954586184178645E-5', u);
  t('-0.00000000000000000000000000000000000003516', '-3.516E-38', u);
  t('0.007458', '7.458E-3', u);
  t('0.0670339647456587432138292225', '6.70339647456587432138292225E-2', u);
  t('-49.59', '-4.959E1', u);
  t('5.94', '5.94E0', u);
  t('9185110977234279483303912931774514.67', '9.18511097723427948330391293177451467E33', u);
  t('-127.11408592808048991219551891022999276273412536879573107525', '-1.2711408592808048991219551891022999276273412536879573107525E2', u);
  t('0.00000013', '1.3E-7', u);
  t('-0.00000000000000000000000000000000156', '-1.56E-33', u);
  t('22', '2.2E1', u);
  t('6644378197598065.943168375926', '6.644378197598065943168375926E15', u);
  t('-0.00000000000000465403429687260725429254606083299909', '-4.65403429687260725429254606083299909E-15', u);
  t('0.00000653586429286761580785105', '6.53586429286761580785105E-6', u);
  t('-779132060.497697052423647343175672388834', '-7.79132060497697052423647343175672388834E8', u);
  t('0.0000000000000000085996828590423169591835759758087548466494', '8.5996828590423169591835759758087548466494E-18', u);
  t('-0.000000000000256285784', '-2.56285784E-13', u);
  t('0.0000000000000017947', '1.7947E-15', u);
  t('0.000000000060671249811126224597672813512109', '6.0671249811126224597672813512109E-11', u);
  t('-800627106331596202.032250866963247864855868', '-8.00627106331596202032250866963247864855868E17', u);
  t('-98402249.9358755191632299360339880127190049662097654206', '-9.84022499358755191632299360339880127190049662097654206E7', u);
  t('-0.000000000000000000000014149882794818263963', '-1.4149882794818263963E-23', u);
  t('-7060324311175919534626797409919718746390.10555', '-7.06032431117591953462679740991971874639010555E39', u);
  t('821393911651350506858922608971571483.39201', '8.2139391165135050685892260897157148339201E35', u);
  t('-721517626817.43734235970422357278172', '-7.2151762681743734235970422357278172E11', u);
  t('-5124.504476910146380807047771', '-5.124504476910146380807047771E3', u);
  t('0.0000000005697544867401308959870722352682904', '5.697544867401308959870722352682904E-10', u);
  t('-0.00012871208613777', '-1.2871208613777E-4', u);
  t('8567233928771894245.8242651905951092028701228506224699', '8.5672339287718942458242651905951092028701228506224699E18', u);
  t('-0.0000000094881461545668728', '-9.4881461545668728E-9', u);
  t('6045245.020177069527457656633132622', '6.045245020177069527457656633132622E6', u);
  t('-7210271571379007035869444.1417241308887367042323559687840525', '-7.2102715713790070358694441417241308887367042323559687840525E24', u);
  t('-2620220239077.66', '-2.62022023907766E12', u);
  t('-0.001916564704980402478', '-1.916564704980402478E-3', u);
  t('5371.947750065160966666612070818997', '5.371947750065160966666612070818997E3', u);
  t('0.00000077036439397954895237124076', '7.7036439397954895237124076E-7', u);
  t('-0.000000000002280137669447351084609656999367909206747800792', '-2.280137669447351084609656999367909206747800792E-12', u);
  t('635945056777163867933996244.44612913038', '6.3594505677716386793399624444612913038E26', u);
  t('5', '5E0', u);
  t('48309.56', '4.830956E4', u);
  t('2138.45865823930129961216391905305999251296833471869532168', '2.13845865823930129961216391905305999251296833471869532168E3', u);
  t('3706073870.96925990345144', '3.70607387096925990345144E9', u);
  t('-798.62', '-7.9862E2', u);
  t('-521968106907526.65373750732297', '-5.2196810690752665373750732297E14', u);
  t('0.7224996555', '7.224996555E-1', u);
  t('-0.00000000000059452644215310796452483703709', '-5.9452644215310796452483703709E-13', u);
  t('350818063006798017016671125.0434068891113', '3.508180630067980170166711250434068891113E26', u);
  t('7968708424180299716816047189442601.3735762244', '7.9687084241802997168160471894426013735762244E33', u);
  t('-0.5355520816318664361284739093852209293628562271329701', '-5.355520816318664361284739093852209293628562271329701E-1', u);
  t('-906.9275233025623299867798', '-9.069275233025623299867798E2', u);
  t('0.00045587', '4.5587E-4', u);
  t('0.000004', '4E-6', u);
  t('5857276704537340524.1431417907437', '5.8572767045373405241431417907437E18', u);
  t('-3843554476637626791.87474208180361', '-3.84355447663762679187474208180361E18', u);
  t('-60535943484683045495384222.313768035329647860053456457477', '-6.0535943484683045495384222313768035329647860053456457477E25', u);
  t('0.0000000000000004444869762788836674404079577885262473', '4.444869762788836674404079577885262473E-16', u);
  t('-0.005874931444844844350595746989373586841269114316', '-5.874931444844844350595746989373586841269114316E-3', u);
  t('0.09', '9E-2', u);
  t('86280010336.8017418950328178', '8.62800103368017418950328178E10', u);
  t('227901.6305936588696902705189877626178015851261755', '2.279016305936588696902705189877626178015851261755E5', u);
  t('-0.00002923', '-2.923E-5', u);
  t('451.1251729802129507', '4.511251729802129507E2', u);
  t('-2586077212890917651232310958.88201646914374247083', '-2.58607721289091765123231095888201646914374247083E27', u);
  t('-0.08', '-8E-2', u);
  t('7.996020827302694833122463304879649129610781362', '7.996020827302694833122463304879649129610781362E0', u);
  t('-0.00000000000000000000000007933204829049175909186498799838', '-7.933204829049175909186498799838E-26', u);
  t('-0.0000000000001882498592930501880542338117957263473489255', '-1.882498592930501880542338117957263473489255E-13', u);
  t('-1172052648945437104144.7753679481957698417677', '-1.1720526489454371041447753679481957698417677E21', u);
  t('287937985683292603.441526238031', '2.87937985683292603441526238031E17', u);
  t('-0.0000000000134355091714731837192225455005', '-1.34355091714731837192225455005E-11', u);
  t('0.000000000000000000000000000026170541344981279884209612', '2.6170541344981279884209612E-29', u);
  t('0.0041336403', '4.1336403E-3', u);
  t('8955011.51436146124079765380599870608206410057', '8.95501151436146124079765380599870608206410057E6', u);
  t('76343535604093', '7.6343535604093E13', u);
  t('-579109804573982925.9', '-5.791098045739829259E17', u);
  t('-16248730541202.41645330499728414237866592099124270393892244', '-1.624873054120241645330499728414237866592099124270393892244E13', u);
  t('299078130777696473774921407.8921386301', '2.990781307776964737749214078921386301E26', u);
  t('0.00000000000005008659860139108', '5.008659860139108E-14', u);
  t('-277409247924.47', '-2.7740924792447E11', u);
  t('-0.516', '-5.16E-1', u);
  t('-0.0000000000000000000000056338952424532568447556', '-5.6338952424532568447556E-24', u);
  t('-0.000000217955', '-2.17955E-7', u);
  t('8905335075021645253458124.63415988932826552', '8.90533507502164525345812463415988932826552E24', u);
  t('-0.0044', '-4.4E-3', u);
  t('-0.2373963', '-2.373963E-1', u);
  t('-0.79088027341157244765444311372339', '-7.9088027341157244765444311372339E-1', u);
  t('0.0026', '2.6E-3', u);
  t('-835918193339364260673226.934', '-8.35918193339364260673226934E23', u);
  t('-0.0009', '-9E-4', u);
  t('6', '6E0', u);
  t('-314214420212243283843403549.4470864901529365489404218274', '-3.142144202122432838434035494470864901529365489404218274E26', u);
  t('0.00000000791545594251', '7.91545594251E-9', u);
  t('191942230233.90984962570015373025283255557', '1.9194223023390984962570015373025283255557E11', u);
  t('-0.0000000000078881545375574067765343323', '-7.8881545375574067765343323E-12', u);
  t('-16802261058.36705', '-1.680226105836705E10', u);
  t('0.0000000000000056017241520290338574647512149076190238', '5.6017241520290338574647512149076190238E-15', u);
  t('-0.00000000003763962', '-3.763962E-11', u);
  t('-0.000000000511737717217408462541465239', '-5.11737717217408462541465239E-10', u);
  t('-0.000000000000000000000000000000000000000050368224614', '-5.0368224614E-41', u);
  t('-0.018634708832478724474964945976701', '-1.8634708832478724474964945976701E-2', u);
  t('6', '6E0', u);
  t('-0.0000000000000000000745072058021090744018544591692', '-7.45072058021090744018544591692E-20', u);
  t('724257535284104810664.4073', '7.242575352841048106644073E20', u);
  t('12769.45510988046008277708155820993631711046', '1.276945510988046008277708155820993631711046E4', u);
  t('631804730657678655927.137998704033924856965', '6.31804730657678655927137998704033924856965E20', u);
  t('0.00000000000000000000000000000000798840870767288241343529097', '7.98840870767288241343529097E-33', u);
  t('1696465.807207', '1.696465807207E6', u);
  t('0.00000000000000000000000000000079804991500258221476735155', '7.9804991500258221476735155E-31', u);
  t('-0.000000000000000000000598137708', '-5.98137708E-22', u);
  t('0.000000000000000000000000065555369684822', '6.5555369684822E-26', u);
  t('-35599704691194312186568857.06582774697883475886191', '-3.559970469119431218656885706582774697883475886191E25', u);
  t('-0.0000000000000794908227013', '-7.94908227013E-14', u);
  t('-0.0000000499730429264884151845723427055364', '-4.99730429264884151845723427055364E-8', u);
  t('0.00000000000000064', '6.4E-16', u);
  t('-572705', '-5.72705E5', u);
  t('-0.000000000559274332', '-5.59274332E-10', u);
  t('2924074735520802294144158.124247615661785268262895466645', '2.924074735520802294144158124247615661785268262895466645E24', u);
  t('0.00000000000000000000001792', '1.792E-23', u);
  t('-839757046612045970742723218746.08104510687271206453', '-8.3975704661204597074272321874608104510687271206453E29', u);
  t('607849.09099201775466906352465117043', '6.0784909099201775466906352465117043E5', u);
  t('-4654202085161.7295919153', '-4.6542020851617295919153E12', u);
  t('350765025122274578259836720029858792277.93', '3.5076502512227457825983672002985879227793E38', u);
  t('-0.000000000000000000000000000000000000528363561265895', '-5.28363561265895E-37', u);
  t('-7', '-7E0', u);
  t('4.57', '4.57E0', u);
  t('-1214468.83483364', '-1.21446883483364E6', u);
  t('-1.75890665039235813638669857754779113', '-1.75890665039235813638669857754779113E0', u);
  t('-0.0001520617551991821956064', '-1.520617551991821956064E-4', u);
  t('0.000000000000000000000000000000000000000000316862530006', '3.16862530006E-43', u);
  t('3', '3E0', u);
  t('82', '8.2E1', u);
  t('-0.0000000000000000000000000000000773334716331177010647839', '-7.73334716331177010647839E-32', u);
  t('708885924.332539635179', '7.08885924332539635179E8', u);
  t('-64497329.71357360701588', '-6.449732971357360701588E7', u);
  t('-0.7187', '-7.187E-1', u);
  t('0.00000000000000000000000000000000000038135349688', '3.8135349688E-37', u);
  t('0.00000000000000000000000000000000182717532099214054', '1.82717532099214054E-33', u);
  t('19869092956779031884883390565185379047759848968501117153.4', '1.98690929567790318848833905651853790477598489685011171534E55', u);
  t('620913861673.81857852920469094171232255417901159', '6.2091386167381857852920469094171232255417901159E11', u);
  t('235690494.2', '2.356904942E8', u);
  t('1952.848789', '1.952848789E3', u);
  t('0.0000000000000000000000593857592909', '5.93857592909E-23', u);
  t('-0.00000000000000688558900049482997723', '-6.88558900049482997723E-15', u);
  t('-0.00000000000000000000000000007338347173289341804737', '-7.338347173289341804737E-29', u);
  t('0.000000000000000202545915248826284620971210675', '2.02545915248826284620971210675E-16', u);
  t('-724.280380099716494328413118123', '-7.24280380099716494328413118123E2', u);
  t('-0.000000000000018969640124102058547183921', '-1.8969640124102058547183921E-14', u);
  t('429623.23189016762963579', '4.2962323189016762963579E5', u);
  t('-4440068176059478189.38961985114362', '-4.44006817605947818938961985114362E18', u);
  t('388081523018426906543780329974051543542101.8221256689223182', '3.880815230184269065437803299740515435421018221256689223182E41', u);
  t('454795752022.4749683607481963197156049975854', '4.547957520224749683607481963197156049975854E11', u);
  t('-5.97', '-5.97E0', u);
  t('-0.0000000651', '-6.51E-8', u);
  t('0.000307481649349842471', '3.07481649349842471E-4', u);
  t('-0.06005081686761154653757227654183441415861126', '-6.005081686761154653757227654183441415861126E-2', u);
  t('0.00000000000000000000063579065', '6.3579065E-22', u);
  t('900814801036731395557.6', '9.008148010367313955576E20', u);
  t('4999', '4.999E3', u);
  t('-7.3827865388155464662280547066599644534268122420403', '-7.3827865388155464662280547066599644534268122420403E0', u);
  t('-17278399836268786075488221.51', '-1.727839983626878607548822151E25', u);
  t('-0.0660146', '-6.60146E-2', u);
  t('-781591906217028941735734533.343797893312168609257042055753', '-7.81591906217028941735734533343797893312168609257042055753E26', u);
  t('-6278408649', '-6.278408649E9', u);
  t('-0.000000000001', '-1E-12', u);
  t('0.0018', '1.8E-3', u);
  t('-437548970.255395047611134138987663791895761194803418316513197', '-4.37548970255395047611134138987663791895761194803418316513197E8', u);
  t('-147885337323804329368530390734663845475933.77830435', '-1.4788533732380432936853039073466384547593377830435E41', u);
  t('-753868987492754718849345711047082845957.640888486201188367', '-7.53868987492754718849345711047082845957640888486201188367E38', u);
  t('-340168909098957.1241', '-3.401689090989571241E14', u);
  t('-0.000000000000000000000000000000000000000585436735853', '-5.85436735853E-40', u);
  t('0.0000000000000000756425339599187041535729604907751951301172', '7.56425339599187041535729604907751951301172E-17', u);
  t('4632870.933', '4.632870933E6', u);
  t('-4563559260.01', '-4.56355926001E9', u);
  t('-0.00000000000000000000000294407952905593673865', '-2.94407952905593673865E-24', u);
  t('0.00000000039555331064814', '3.9555331064814E-10', u);
  t('-0.0000000000000000000000000000000066', '-6.6E-33', u);
  t('0.00000000000000000000000002796', '2.796E-26', u);
  t('0.006420974922080335', '6.420974922080335E-3', u);
  t('62.09', '6.209E1', u);
  t('0.000000000000000000000000000000000000000092019', '9.2019E-41', u);
  t('31705406794.02881', '3.170540679402881E10', u);
  t('85.877', '8.5877E1', u);
  t('6183.522312', '6.183522312E3', u);
  t('4299.15237475410462987616810012961', '4.29915237475410462987616810012961E3', u);
  t('21900171506665946787994.9913441726189153092', '2.19001715066659467879949913441726189153092E22', u);
  t('64432017665108304653.37748', '6.443201766510830465337748E19', u);
  t('-859958206403439.8555459676', '-8.599582064034398555459676E14', u);
  t('332.8856507997622171514594697481203953250774320862536', '3.328856507997622171514594697481203953250774320862536E2', u);
  t('-0.0000000000000000000000000000007425', '-7.425E-31', u);
  t('8.72361', '8.72361E0', u);
  t('-0.0000000000000000000000000000000000000000000000025453', '-2.5453E-48', u);
  t('129360586484988816847066041509256285.9834653851528560934', '1.293605864849888168470660415092562859834653851528560934E35', u);
  t('-0.000000000000007222', '-7.222E-15', u);
  t('-8098841403716381679540887.942710395311867043476849928102', '-8.098841403716381679540887942710395311867043476849928102E24', u);
  t('-596359917165924096.74516895354130304259526279190192', '-5.9635991716592409674516895354130304259526279190192E17', u);
  t('383728239984415462011.156111377322400391221501061013146359', '3.83728239984415462011156111377322400391221501061013146359E20', u);
  t('-0.0000089', '-8.9E-6', u);
  t('-0.000000000000000000000000008687857', '-8.687857E-27', u);
  t('0.0000361135882323181', '3.61135882323181E-5', u);
  t('-790530028343151500857311598079293.168169782009497538', '-7.90530028343151500857311598079293168169782009497538E32', u);
  t('120280775320592531520673579931715496.413898', '1.20280775320592531520673579931715496413898E35', u);
  t('-0.00000000000000330496', '-3.30496E-15', u);
  t('0.00000000000000000000000000000000000000000009', '9E-44', u);
  t('0.493800687846', '4.93800687846E-1', u);
  t('0.00000000000000000000000000000000000000000000428917279063', '4.28917279063E-45', u);
  t('2439161986343305.3977219293086130659', '2.4391619863433053977219293086130659E15', u);
  t('0.00000000000000000000000000000001236416', '1.236416E-32', u);
  t('-0.00000074534400936482826343789037997822705', '-7.4534400936482826343789037997822705E-7', u);
  t('-21.1', '-2.11E1', u);
  t('2572114652026268493653871881146558385361920.28081168806628264', '2.57211465202626849365387188114655838536192028081168806628264E42', u);
  t('17124033483109159133818176268510442295426753249741457.875034', '1.7124033483109159133818176268510442295426753249741457875034E52', u);
  t('-0.5129122224574351008', '-5.129122224574351008E-1', u);
  t('-0.007927', '-7.927E-3', u);
  t('-0.0000920899747', '-9.20899747E-5', u);
  t('-0.004894338278755', '-4.894338278755E-3', u);
  t('0.0000000000000000000061703', '6.1703E-21', u);
  t('2326089407921647116369956641187720.969', '2.326089407921647116369956641187720969E33', u);
  t('1166197836238509', '1.166197836238509E15', u);
  t('3671781131154060908657.603137323342926541681254', '3.671781131154060908657603137323342926541681254E21', u);
  t('0.0000000000000000000000000000000000000000000002260279', '2.260279E-46', u);
  t('-0.00000000000000000000000000000000000000000000000000404', '-4.04E-51', u);
  t('-652408413688213856070194.6216304473505375385271', '-6.524084136882138560701946216304473505375385271E23', u);
  t('-6437.3786', '-6.4373786E3', u);
  t('-0.00024', '-2.4E-4', u);
  t('-0.000000000000000000000000000004', '-4E-30', u);
  t('0.0000000000000009079496181315516965', '9.079496181315516965E-16', u);
  t('-33759.06239', '-3.375906239E4', u);
  t('-8249214.8143', '-8.2492148143E6', u);
  t('76023.094878', '7.6023094878E4', u);
  t('4750348149604126293082788358593492149985525371.3055161011554', '4.7503481496041262930827883585934921499855253713055161011554E45', u);
  t('-347056242813575345437098678.19382', '-3.4705624281357534543709867819382E26', u);
  t('-0.0044334994986839', '-4.4334994986839E-3', u);
  t('-77579240.8814471085', '-7.75792408814471085E7', u);
  t('0.00000000000005880190315', '5.880190315E-14', u);
  t('5512594339298216692.2504515931248375537394173161332', '5.5125943392982166922504515931248375537394173161332E18', u);
  t('897599613823052.78098021722556', '8.9759961382305278098021722556E14', u);
  t('491849.74046716999671925', '4.9184974046716999671925E5', u);
  t('0.00000000000000000000000000000026', '2.6E-31', u);
  t('83831959917154625137362002.826519817779', '8.3831959917154625137362002826519817779E25', u);
  t('0.0000000004824', '4.824E-10', u);
  t('-0.0000000000000000000539954390007731983666483', '-5.39954390007731983666483E-20', u);
  t('-5', '-5E0', u);
  t('-0.0000000000000000000000000000000052105973', '-5.2105973E-33', u);
  t('-51180818493453796222392326680632879', '-5.1180818493453796222392326680632879E34', u);
  t('-0.0000000000000000000000000000000000240888314887894116', '-2.40888314887894116E-35', u);
  t('-3.9884198', '-3.9884198E0', u);
  t('-0.00292509420999319058434270507', '-2.92509420999319058434270507E-3', u);
  t('-0.0471410502674988132847954859528693281', '-4.71410502674988132847954859528693281E-2', u);
  t('-0.000383921003997213038329810979734179482203337059136937948', '-3.83921003997213038329810979734179482203337059136937948E-4', u);
  t('868847355738186906225977.83933455357403132497074451153826473', '8.6884735573818690622597783933455357403132497074451153826473E23', u);
  t('-74428485419.93786255558241', '-7.442848541993786255558241E10', u);
  t('9.08353695983999662727523423580372295', '9.08353695983999662727523423580372295E0', u);
  t('0.000000000000000000000000000000000000174340386756706026938', '1.74340386756706026938E-37', u);
  t('0.00000000000000000000000003488223852390463813101', '3.488223852390463813101E-26', u);
  t('6235893648937978707207460050453092026130252190198479.3', '6.2358936489379787072074600504530920261302521901984793E51', u);
  t('288685778491241.9787664674', '2.886857784912419787664674E14', u);
  t('0.000132721936833718', '1.32721936833718E-4', u);
  t('-878.0561026970809281319399445768', '-8.780561026970809281319399445768E2', u);
  t('0.00000000000000000000000000000164205860568335794182', '1.64205860568335794182E-30', u);
  t('198.2447277', '1.982447277E2', u);
  t('594893202379402597086528939812.686961108921', '5.94893202379402597086528939812686961108921E29', u);
  t('815799379961431517563630941318305822656819.1819089536', '8.157993799614315175636309413183058226568191819089536E41', u);
  t('7990092124827731099787724282235162054016305443.9448', '7.9900921248277310997877242822351620540163054439448E45', u);
  t('663687681604087645522022865972.07146532571', '6.6368768160408764552202286597207146532571E29', u);
  t('318669729285258750300170721357707298590338.45839229964442', '3.1866972928525875030017072135770729859033845839229964442E41', u);
  t('-555699450886771049.424695515896915466268294356460403', '-5.55699450886771049424695515896915466268294356460403E17', u);
  t('-0.00000000000000000000000000000000000000000001095071857', '-1.095071857E-44', u);
  t('-9150620505556.07974725572726628538', '-9.15062050555607974725572726628538E12', u);
  t('-0.00000000003194584', '-3.194584E-11', u);
  t('-1913473.7214461866163373699149123', '-1.9134737214461866163373699149123E6', u);
  t('226008983260172522.282738382841159863', '2.26008983260172522282738382841159863E17', u);
  t('62674367141762718476.245255', '6.2674367141762718476245255E19', u);
  t('-2', '-2E0', u);
  t('-0.00000009178', '-9.178E-8', u);
  t('0.00000000000000000629836181986423672328404795028', '6.29836181986423672328404795028E-18', u);
  t('93586.02926647672', '9.358602926647672E4', u);
  t('-0.0000000000000000000000005', '-5E-25', u);
  t('-9207421318.2448691844836734269513121808514798', '-9.2074213182448691844836734269513121808514798E9', u);
  t('-0.00000007307221392104978', '-7.307221392104978E-8', u);
  t('-0.0000000000000066886943766783493967753683408289', '-6.6886943766783493967753683408289E-15', u);
  t('-543304673129193.8', '-5.433046731291938E14', u);
  t('-0.000000000000000136', '-1.36E-16', u);
  t('-5548881134560.03611729206353518', '-5.54888113456003611729206353518E12', u);
  t('12277666390.0592100569639588009142346505770647', '1.22776663900592100569639588009142346505770647E10', u);
  t('-49886360742145249688090891445025578471363.463145336476', '-4.9886360742145249688090891445025578471363463145336476E40', u);
  t('289734846955085106069130291953704075.5686911', '2.897348469550851060691302919537040755686911E35', u);
  t('0.00000000046461', '4.6461E-10', u);
  t('-62109960217702169495599.7856590374740584451730995867043611', '-6.21099602177021694955997856590374740584451730995867043611E22', u);
  t('-0.00543899591266188574678', '-5.43899591266188574678E-3', u);
  t('-0.000000000000655098180667', '-6.55098180667E-13', u);
  t('16003803057504466354568876.721', '1.6003803057504466354568876721E25', u);
  t('4.54663', '4.54663E0', u);
  t('-0.0000090363058536', '-9.0363058536E-6', u);
  t('0.00000000000000000000000000000000000000000000683169237734869', '6.83169237734869E-45', u);
  t('-0.000007999285941677', '-7.999285941677E-6', u);
  t('-0.0013289268682646', '-1.3289268682646E-3', u);
  t('-676279445952.4758664434048894660778454544', '-6.762794459524758664434048894660778454544E11', u);
  t('-0.00000000000009075526387', '-9.075526387E-14', u);
  t('0.00000086974105048792231226652741684821263913885781939473', '8.6974105048792231226652741684821263913885781939473E-7', u);
  t('0.000000066874978182439602812', '6.6874978182439602812E-8', u);
  t('69460738505039771437626.5674', '6.94607385050397714376265674E22', u);
  t('-496842225856320580039833.32412974875059', '-4.9684222585632058003983332412974875059E23', u);
  t('-0.00000000089027363409225605342063967', '-8.9027363409225605342063967E-10', u);
  t('0.000000000000000000000000000000000000000000013177025997876', '1.3177025997876E-44', u);
  t('0.00000000000000000000000000000000000000000000000000767', '7.67E-51', u);
  t('0.00000000000000000000051646585515', '5.1646585515E-22', u);
  t('-77.0523658189', '-7.70523658189E1', u);
  t('-2381011509343581230.1741806527782135341132', '-2.3810115093435812301741806527782135341132E18', u);
  t('15355.8', '1.53558E4', u);
  t('-6.99530180722252243035032591', '-6.99530180722252243035032591E0', u);
  t('0.00000000000000000000000000000000000174189621024', '1.74189621024E-36', u);
  t('-0.30429214832427054994311306579079362506404', '-3.0429214832427054994311306579079362506404E-1', u);
  t('0.0000053681637', '5.3681637E-6', u);
  t('-0.0000000000000000000580794214565094', '-5.80794214565094E-20', u);
  t('0.00000000000000000000000000000000000000718', '7.18E-39', u);
  t('0.00308106507', '3.08106507E-3', u);
  t('-778826601182.03', '-7.7882660118203E11', u);
  t('0.07', '7E-2', u);
  t('-18429554314600.2502715009477102928634264509718651532399233353', '-1.84295543146002502715009477102928634264509718651532399233353E13', u);
  t('1', '1E0', u);
  t('-0.007671287604999', '-7.671287604999E-3', u);
  t('7887909.816542736', '7.887909816542736E6', u);
  t('749', '7.49E2', u);
  t('0.00000000000000000000000000000000000000000000000000000000701', '7.01E-57', u);
  t('19.83', '1.983E1', u);
  t('6.09402754', '6.09402754E0', u);
  t('424650217237.5591', '4.246502172375591E11', u);
  t('-0.000049564535268301', '-4.9564535268301E-5', u);
  t('-7149629423.847728553', '-7.149629423847728553E9', u);
  t('886867.3497161434434805387149126261591812', '8.868673497161434434805387149126261591812E5', u);
  t('5.26322950282017332236528', '5.26322950282017332236528E0', u);
  t('-814.59758571746371817362831870047066741472348685917', '-8.1459758571746371817362831870047066741472348685917E2', u);
  t('-0.3417309109605504', '-3.417309109605504E-1', u);
  t('0.000000057039362368628403676633', '5.7039362368628403676633E-8', u);
  t('-71880.393174366874491172325', '-7.1880393174366874491172325E4', u);
  t('0.000000000000000000000000000000022058', '2.2058E-32', u);
  t('-2.4', '-2.4E0', u);
  t('228988936752996967.25464233211', '2.2898893675299696725464233211E17', u);
  t('-5080707117552421.40044791548207099220514344', '-5.08070711755242140044791548207099220514344E15', u);
  t('-0.00000000000000000000000000000000016', '-1.6E-34', u);
  t('-0.00003625156420604915204366585038046', '-3.625156420604915204366585038046E-5', u);
  t('464637966596604669241542203619416.3216624756173', '4.646379665966046692415422036194163216624756173E32', u);
  t('0.9087655476734088654458558078829027886267006357', '9.087655476734088654458558078829027886267006357E-1', u);
  t('38664124727384955142.767044860367795251877128009517', '3.8664124727384955142767044860367795251877128009517E19', u);
  t('-0.04762788797', '-4.762788797E-2', u);
  t('-0.00000005574134895606662617', '-5.574134895606662617E-8', u);
  t('-0.0003', '-3E-4', u);
  t('4722723.88281334997860228789', '4.72272388281334997860228789E6', u);
  t('-23995836727515866107660.4330429236850044610474', '-2.39958367275158661076604330429236850044610474E22', u);
  t('0.0000045734704681293061832577', '4.5734704681293061832577E-6', u);
  t('-0.0000000000000000000000000000000182740798445987382441', '-1.82740798445987382441E-32', u);
  t('255100617558.86883972286820342761', '2.5510061755886883972286820342761E11', u);
  t('0.064171494091240642357663125', '6.4171494091240642357663125E-2', u);
  t('0.000000000000000000000000000000000000000000000294', '2.94E-46', u);
  t('-281546266519431813455047.7', '-2.815462665194318134550477E23', u);
  t('-570257381822964838010877265', '-5.70257381822964838010877265E26', u);
  t('0.00000505461928', '5.05461928E-6', u);
  t('-0.0000000000000079383014842488', '-7.9383014842488E-15', u);
  t('4902.6138179376447898508', '4.9026138179376447898508E3', u);
  t('-0.0000715984', '-7.15984E-5', u);
  t('0.000035824586044205294062412584', '3.5824586044205294062412584E-5', u);
  t('0.000000000000000000000125960459847724978955518957', '1.25960459847724978955518957E-22', u);
  t('0.028825661929052', '2.8825661929052E-2', u);
  t('1', '1E0', u);
  t('5515129992862248795518.6683048631996974', '5.5151299928622487955186683048631996974E21', u);
  t('-0.00000000000000000000000000000000000000000080094098284978', '-8.0094098284978E-43', u);
  t('0.0087634344566767751845291518372154140005282350718533575', '8.7634344566767751845291518372154140005282350718533575E-3', u);
  t('-0.00000000000000000000000000087483068736', '-8.7483068736E-28', u);
  t('-0.00000000000000000000003486', '-3.486E-23', u);
  t('0.00000000000000000000000000000070504040638', '7.0504040638E-31', u);
  t('8303509586343.2443141446152924467090885760476794115914091746', '8.3035095863432443141446152924467090885760476794115914091746E12', u);
  t('-64990.51997', '-6.499051997E4', u);
  t('-655394931216227242937434026113830.5297263576723976532', '-6.553949312162272429374340261138305297263576723976532E32', u);
  t('-30636947149027568.3784157180980445146', '-3.06369471490275683784157180980445146E16', u);
  t('-0.00000000000000000000000000000000000001208233572003', '-1.208233572003E-38', u);
  t('-0.0000000000000011794152801815', '-1.1794152801815E-15', u);
  t('1071378.3293', '1.0713783293E6', u);
  t('-0.000000000003361089193578981719907614', '-3.361089193578981719907614E-12', u);
  t('0.000000000000000007517993065604', '7.517993065604E-18', u);
  t('-0.00000000000000000000000000523129187652012620622569673798', '-5.23129187652012620622569673798E-27', u);
  t('0.0005386441729450879234', '5.386441729450879234E-4', u);
  t('1956653.41224492311730384723219211', '1.95665341224492311730384723219211E6', u);
  t('6896', '6.896E3', u);
  t('0.0000000000744534597556481260346395203468455303201235567973', '7.44534597556481260346395203468455303201235567973E-11', u);
  t('-292388805074045762115572488335407720919180203157229382665.559', '-2.92388805074045762115572488335407720919180203157229382665559E56', u);
  t('0.0000000000161486329717318200324782054218311', '1.61486329717318200324782054218311E-11', u);
  t('-0.000000007268', '-7.268E-9', u);
  t('-301600646696.465', '-3.01600646696465E11', u);
  t('433163.236977123475732966', '4.33163236977123475732966E5', u);
  t('0.00000000000002', '2E-14', u);
  t('77436648026076439631578359.44359576567', '7.743664802607643963157835944359576567E25', u);
  t('548548914365689512587508708513155531344527.51142574657215155', '5.4854891436568951258750870851315553134452751142574657215155E41', u);
  t('-34.831073457011317265120446795022234120450280951265737281038', '-3.4831073457011317265120446795022234120450280951265737281038E1', u);
  t('-845.7703', '-8.457703E2', u);
  t('-4855853589907390754493', '-4.855853589907390754493E21', u);
  t('-0.000000000000000000000000000000000000000000000036', '-3.6E-47', u);
  t('-0.00000000000000000000000000000000000000000000000000000065', '-6.5E-55', u);
  t('-45187081404585.42115773362507', '-4.518708140458542115773362507E13', u);
  t('-0.000323660879015412727290006070402289', '-3.23660879015412727290006070402289E-4', u);
  t('0.0000000026140558644933293588', '2.6140558644933293588E-9', u);
  t('845511912406451608.452066253429799', '8.45511912406451608452066253429799E17', u);
  t('0.0000000004438916316433824501475', '4.438916316433824501475E-10', u);
  t('-1.475814', '-1.475814E0', u);
  t('-0.5938633', '-5.938633E-1', u);
  t('-0.0000000000000000000000000000001', '-1E-31', u);
  t('-5261012744021996107539939108.077860134', '-5.261012744021996107539939108077860134E27', u);
  t('-0.0000000000000000000000000000000000000000000048147761739', '-4.8147761739E-45', u);
  t('-768545505862649955130.58486163645042434421335', '-7.6854550586264995513058486163645042434421335E20', u);
  t('-8704255.29406077171056688276987554', '-8.70425529406077171056688276987554E6', u);
  t('-0.00000000049', '-4.9E-10', u);
  t('-0.0000274005502702', '-2.74005502702E-5', u);
  t('0.0000000000000000000000000000899782060188', '8.99782060188E-29', u);
  t('2665032804405760472644.6495163233309696', '2.6650328044057604726446495163233309696E21', u);
  t('-0.000000000000000030326850268940214303', '-3.0326850268940214303E-17', u);
  t('0.0000612367883', '6.12367883E-5', u);
  t('303609712270628568267916524914027172014687335.2872885723795', '3.036097122706285682679165249140271720146873352872885723795E44', u);
  t('0.000475307072678608341', '4.75307072678608341E-4', u);
  t('-0.889983831753818831790592735', '-8.89983831753818831790592735E-1', u);
  t('-0.00066889767092099512366082', '-6.6889767092099512366082E-4', u);
  t('-82', '-8.2E1', u);
  t('0.000000000000000021', '2.1E-17', u);
  t('-0.000000000000000000000000000000000000000000000179184', '-1.79184E-46', u);
  t('-0.00000153', '-1.53E-6', u);
  t('1515.50800161303015840906362948489', '1.51550800161303015840906362948489E3', u);
  t('-0.000000065937444987966499626906986814867840872', '-6.5937444987966499626906986814867840872E-8', u);
  t('-8.9396126344740419192589432399447838129620466', '-8.9396126344740419192589432399447838129620466E0', u);
  t('-14954.93625698463935831538650997', '-1.495493625698463935831538650997E4', u);
  t('9174945', '9.174945E6', u);
  t('0.000000000000000000000000000000002802944759681178397', '2.802944759681178397E-33', u);
  t('-43661507562386856914454118482535735284321568.8260068', '-4.36615075623868569144541184825357352843215688260068E43', u);
  t('-0.0000000000000053', '-5.3E-15', u);
  t('0.000000000000000088261', '8.8261E-17', u);
  t('-3.5', '-3.5E0', u);
  t('-0.0000000892690903256739084318630208528', '-8.92690903256739084318630208528E-8', u);
  t('-6407107615634731793662054.643592714114255633352022546773', '-6.407107615634731793662054643592714114255633352022546773E24', u);
  t('0.000000000000008', '8E-15', u);
  t('-4113623798185597530479042260306405.169879539509', '-4.113623798185597530479042260306405169879539509E33', u);
  t('-0.0000000000000000000000005949543693626028147554', '-5.949543693626028147554E-25', u);
  t('-16486202099937.552352885944', '-1.6486202099937552352885944E13', u);
  t('6904428088990.55342459', '6.90442808899055342459E12', u);
  t('-82273669444.3011132490462', '-8.22736694443011132490462E10', u);
  t('-0.00000000000416644372132', '-4.16644372132E-12', u);
  t('-0.051168126904004539033', '-5.1168126904004539033E-2', u);
  t('-0.000034398785', '-3.4398785E-5', u);
  t('-714608413034.632588711', '-7.14608413034632588711E11', u);
  t('31.7594171820640021654374655039', '3.17594171820640021654374655039E1', u);
  t('87.4', '8.74E1', u);
  t('0.00000000000000000000000483', '4.83E-24', u);
  t('24.61775061167239603598621023987484627713284203', '2.461775061167239603598621023987484627713284203E1', u);
  t('-0.0000000000000000000000000000005620531', '-5.620531E-31', u);
  t('36514.26972606881494', '3.651426972606881494E4', u);
  t('-0.00000000000000000000000000000000000000804143880989122008869', '-8.04143880989122008869E-39', u);
  t('-0.0000000000000000000000000000000000000736020246', '-7.36020246E-38', u);
  t('-0.00000000000510047724869054', '-5.10047724869054E-12', u);
  t('905030924720385935277.8553538426257506345310051398387757', '9.050309247203859352778553538426257506345310051398387757E20', u);
  t('-9.18', '-9.18E0', u);
  t('32679523370662392206339543790659744869129539414', '3.2679523370662392206339543790659744869129539414E46', u);
  t('90.2504892', '9.02504892E1', u);
  t('-0.0000000000000000000000050446054506203873', '-5.0446054506203873E-24', u);
  t('136427761390644472964118311128712026.442', '1.36427761390644472964118311128712026442E35', u);

  test.areEqual('-1478635511205065720411441088234634087783353090531769.175603436034231639743395165930222246484607747' +
    '0460440794925193040344223656739741115687100160257607638', new Big('-1478635511205065720411441088234634087783' +
    '353090531769.175603436034231639743395165930222246484607747046044079492519304034422365673974111568710016025760763' +
    '83664408162624867351605015229777701990865326902932136430587015275752666401315258528531504569482239').toFixed(100));

  t('123.45', '12.345e1', u);
  t('123', '12.345e1', 0);
  t('123', '12.345e1', -0);

  test.isException(function () {new Big(1.23).toFixed(null)}, "null");
  test.isException(function () {new Big(1.23).toFixed(NaN)}, "NaN");
  test.isException(function () {new Big(1.23).toFixed('NaN')}, "'NaN'");
  test.isException(function () {new Big(1.23).toFixed([])}, "[]");
  test.isException(function () {new Big(1.23).toFixed({})}, "{}");
  test.isException(function () {new Big(1.23).toFixed('')}, "''");
  test.isException(function () {new Big(1.23).toFixed(' ')}, "' '");
  test.isException(function () {new Big(1.23).toFixed('hello')}, "'hello'");
  test.isException(function () {new Big(1.23).toFixed('\t')}, "'\t'");
  test.isException(function () {new Big(1.23).toFixed(new Date)}, "new Date");
  test.isException(function () {new Big(1.23).toFixed(new RegExp)}, "new RegExp");
  test.isException(function () {new Big(1.23).toFixed(2.01)}, "2.01");
  test.isException(function () {new Big(1.23).toFixed(10.5)}, "10.5");
  test.isException(function () {new Big(1.23).toFixed('1.1e1')}, "'1.1e1'");
  test.isException(function () {new Big(1.23).toFixed(true)}, "true");
  test.isException(function () {new Big(1.23).toFixed(false)}, "false");
  test.isException(function () {new Big(1.23).toFixed(function (){})}, "function (){}");
  test.isException(function () {new Big(1.23).toFixed(Big('3'))}, "Big('3')");
  test.isException(function () {new Big(1.23).toFixed('0')}, "'0'");
  test.isException(function () {new Big(1.23).toFixed('1')}, "'1'");
  test.isException(function () {new Big(1.23).toFixed('22')}, "'22'");
  test.isException(function () {new Big(1.23).toFixed('-0.00')}, "'-0.00'");
  test.isException(function () {new Big(1.23).toFixed('-1')}, "'-1'");
  test.isException(function () {new Big(1.23).toFixed(-23)}, "-23");
  test.isException(function () {new Big(1.23).toFixed(1e9 + 1)}, "1e9 + 1");
  test.isException(function () {new Big(1.23).toFixed(1e9 + 0.1)}, "1e9 + 1");
  test.isException(function () {new Big(1.23).toFixed('-0.01')}, "'-0.01'");
  test.isException(function () {new Big(1.23).toFixed('-1e-1')}, "'-1e-1'");
  test.isException(function () {new Big(1.23).toFixed(Infinity)}, "Infinity");
  test.isException(function () {new Big(1.23).toFixed('-Infinity')}, "'-Infinity'");

  // ROUND_UP
  Big.RM = 3

  t('0.0', '0', 1);
  t('0.1', '0.1', 1);
  t('-0.1', '-0.1', 1);
  t('1', '0.1', 0);
  t('-1', '-0.1', 0);
  t('0.2', '0.101', 1);
  t('-0.2', '-0.101', 1);
  t('0.10001', '0.100000000000000000000001', 5);
  t('-0.10001', '-0.100000000000000000000001', 5);
  t('1.24', '1.234', 2);
  t('-1.24', '-1.234', 2);
  t('98765.43210', '98765.4321', 5);
  t('-98765.43210', '-98765.4321', 5);
  t('1000.000', '999.9999', 3);
  t('-1000.000', '-999.9999', 3);
  t('1000.00', '999.9901', 2);
  t('-1000.00', '-999.9901', 2);

  /*
  Big.DP = 20;
  Big.RM = 1;

  Big.DS = '.';  // decimal separator
  Big.TS = ',';  // thousands separator

  t('0', 0);
  t('1', 1);
  t('-1', -1);
  t('123.456', 123.456);

  t('1', 1, undefined);
  t('-1', -1, 0);
  t('123.456', 123.456, 3);

  t('0.0', 0, 1);
  t('1.00', 1, 2);
  t('-1.000', -1, 3);
  t('123.4560', 123.456, 4);

  t('9,876.54321', 9876.54321);
  t('4,018,736,400,000,000,000,000', '4.0187364e+21');

  t('999,999,999,999,999', 999999999999999);
  t('99,999,999,999,999',  99999999999999);
  t('9,999,999,999,999',   9999999999999);
  t('999,999,999,999',     999999999999);
  t('99,999,999,999',      99999999999);
  t('9,999,999,999',       9999999999);
  t('999,999,999',         999999999);
  t('99,999,999',          99999999);
  t('9,999,999',           9999999);
  t('999,999',             999999);
  t('99,999',              99999);
  t('9,999',               9999);
  t('999',                 999);
  t('99',                  99);
  t('9',                   9);

  t('76,852.342091', '7.6852342091e+4');

  Big.TS = ' ';

  t('76 852.34', '7.6852342091e+4', 2);
  t('-76 852.342091', '-7.6852342091e+4');
  t('76 852.3420910871', '7.6852342091087145832640897e+4', 10);
  t('4 018 736 400 000 000 000 000', '4.0187364e+21');

  Big.DS = ',';
  Big.TS = '.';

  t('-1.234.560.000,000000000008', '-1.23456000000000000000789e+9', 12);

  Big.TS = '';

  t('10000000000123456789000000,0000000001', '10000000000123456789000000.000000000100000001', 10);
  */
});
